[IA64] xencomm: fix dirty page leak
authorAlex Williamson <alex.williamson@hp.com>
Tue, 15 Apr 2008 17:15:20 +0000 (11:15 -0600)
committerAlex Williamson <alex.williamson@hp.com>
Tue, 15 Apr 2008 17:15:20 +0000 (11:15 -0600)
This patch fixes a dirty page leak for live migration.
This is the architecture counter part of 146f214a0e63.

Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
xen/arch/ia64/xen/mm.c
xen/include/asm-ia64/config.h

index 5c8c6dd8de046b987ac269268035efa96dc1aece..bed11ac04c605682451c851f7c0307b425482faf 100644 (file)
@@ -2903,6 +2903,20 @@ int is_iomem_page(unsigned long mfn)
     return (!mfn_valid(mfn) || (page_get_owner(mfn_to_page(mfn)) == dom_io));
 }
 
+void xencomm_mark_dirty(unsigned long addr, unsigned int len)
+{
+    struct domain *d = current->domain;
+    unsigned long gpfn;
+    unsigned long end_addr = addr + len;
+
+    if (shadow_mode_enabled(d)) {
+        for (addr &= PAGE_MASK; addr < end_addr; addr += PAGE_SIZE) {
+            gpfn = get_gpfn_from_mfn(virt_to_mfn(addr));
+            shadow_mark_page_dirty(d, gpfn);
+        }
+    }
+}
+
 /*
  * Local variables:
  * mode: C
index 40a09377edc05d5b7cb49591a35dd2a64746e0d3..ab027ba2c4a722c6661584b63505076a24219a4c 100644 (file)
@@ -291,4 +291,6 @@ struct screen_info { };
 /* Define CONFIG_PRIVIFY to support privified OS (deprecated).  */
 #undef CONFIG_PRIVIFY
 
+#define CONFIG_XENCOMM_MARK_DIRTY 1
+
 #endif /* _IA64_CONFIG_H_ */